package com.me.study.designPatterns.aProxy;

/**
 * 代理模式：
 *  火车票代售点--代理类
 *
 * @author ME
 * @date   2019/4/6
 */
public class SellProxy implements SellTicket {

    private RailwayStation railway;

    /**
     * 默认被代理者
     */
    public SellProxy() {
        this.railway = new RailwayStation();
    }

    /**
     * 通过构造函数传递代理者
     *
     * @param railway 被代理的真实对象
     */
    public SellProxy(RailwayStation railway) {
        this.railway = railway;
    }

    @Override
    public void sellTicket() {
        // 通过有参构造创建，并且加入额外的功能处理，就变成了装饰器模式
        // do something...
        System.out.println("在代售点买了一张火车票。。");
        this.railway.sellTicket();
    }
}
